package nsu.edu.zsq.bean;

import java.util.Date;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * Description: 学生课程表
 */
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StuCourse {
    /**
     *  id
     */
    private Integer id;

    /**
     * 教师课程的id号，即学生的课程从教师课程中添加 tch_course_id
     */
    private Integer tchCourseId;

    /**
     * 学生的学号 stu_no
     */
    private String stuNo;

    /**
     * 班级id，对于班级公共课程使用class_id；否则使用stu_no class_id
     */
    private Integer classId;

    /**
     * 课程代码 course_no
     */
    private String courseNo;

    /**
     * 课程名称 course_name
     */
    private String courseName;

    /**
     * 课程性质，1：必修；2：选修 course_type
     */
    private Integer courseType;

    /**
     * 上课日（星期几，12345） start_day
     */
    @Min(value=1, message="上课日格式不正确")
    @Max(value=5, message="上课日格式不正确")
    private Integer startDay;

    /**
     * 上课时间（第几节，12，34，56，78，910） start_time
     */
    @Min(value=12, message="上课时间格式不正确")
    private Integer startTime;

    /**
     * 上课的教室名（教学楼+教室号） room_name
     */
    @NotNull
    private String roomName;

    /**
     * 授课教师姓名(实际存放teacherNo，只是在查询信息时，使用sql连接语句获取teacherName) teacher_name
     */
    private String teacherName;

    /**
     * 操作者 operator
     */
    private String operator;

    /**
     * 操作时间 operator_time
     */
    private Date operatorTime;

    /**
     * Get 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * Set 
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Get 教师课程的id号，即学生的课程从教师课程中添加
     * @return tch_course_id 教师课程的id号，即学生的课程从教师课程中添加
     */
    public Integer getTchCourseId() {
        return tchCourseId;
    }

    /**
     * Set 教师课程的id号，即学生的课程从教师课程中添加
     * @param tchCourseId 教师课程的id号，即学生的课程从教师课程中添加
     */
    public void setTchCourseId(Integer tchCourseId) {
        this.tchCourseId = tchCourseId;
    }

    /**
     * Get 学生的学号
     * @return stu_no 学生的学号
     */
    public String getStuNo() {
        return stuNo;
    }

    /**
     * Set 学生的学号
     * @param stuNo 学生的学号
     */
    public void setStuNo(String stuNo) {
        this.stuNo = stuNo == null ? null : stuNo.trim();
    }

    /**
     * Get 班级id，对于班级公共课程使用class_id；否则使用stu_no
     * @return class_id 班级id，对于班级公共课程使用class_id；否则使用stu_no
     */
    public Integer getClassId() {
        return classId;
    }

    /**
     * Set 班级id，对于班级公共课程使用class_id；否则使用stu_no
     * @param classId 班级id，对于班级公共课程使用class_id；否则使用stu_no
     */
    public void setClassId(Integer classId) {
        this.classId = classId;
    }

    /**
     * Get 课程代码
     * @return course_no 课程代码
     */
    public String getCourseNo() {
        return courseNo;
    }

    /**
     * Set 课程代码
     * @param courseNo 课程代码
     */
    public void setCourseNo(String courseNo) {
        this.courseNo = courseNo == null ? null : courseNo.trim();
    }

    /**
     * Get 课程名称
     * @return course_name 课程名称
     */
    public String getCourseName() {
        return courseName;
    }

    /**
     * Set 课程名称
     * @param courseName 课程名称
     */
    public void setCourseName(String courseName) {
        this.courseName = courseName == null ? null : courseName.trim();
    }

    /**
     * Get 课程性质，1：必修；2：选修
     * @return course_type 课程性质，1：必修；2：选修
     */
    public Integer getCourseType() {
        return courseType;
    }

    /**
     * Set 课程性质，1：必修；2：选修
     * @param courseType 课程性质，1：必修；2：选修
     */
    public void setCourseType(Integer courseType) {
        this.courseType = courseType;
    }

    /**
     * Get 上课日（星期几，12345）
     * @return start_day 上课日（星期几，12345）
     */
    public Integer getStartDay() {
        return startDay;
    }

    /**
     * Set 上课日（星期几，12345）
     * @param startDay 上课日（星期几，12345）
     */
    public void setStartDay(Integer startDay) {
        this.startDay = startDay;
    }

    /**
     * Get 上课时间（第几节，12，34，56，78，910）
     * @return start_time 上课时间（第几节，12，34，56，78，910）
     */
    public Integer getStartTime() {
        return startTime;
    }

    /**
     * Set 上课时间（第几节，12，34，56，78，910）
     * @param startTime 上课时间（第几节，12，34，56，78，910）
     */
    public void setStartTime(Integer startTime) {
        this.startTime = startTime;
    }

    /**
     * Get 上课的教室名（教学楼+教室号）
     * @return room_name 上课的教室名（教学楼+教室号）
     */
    public String getRoomName() {
        return roomName;
    }

    /**
     * Set 上课的教室名（教学楼+教室号）
     * @param roomName 上课的教室名（教学楼+教室号）
     */
    public void setRoomName(String roomName) {
        this.roomName = roomName == null ? null : roomName.trim();
    }

    /**
     * Get 授课教师名称
     * @return teacher_name 授课教师名称
     */
    public String getTeacherName() {
        return teacherName;
    }

    /**
     * Set 授课教师名称
     * @param teacherName 授课教师名称
     */
    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName == null ? null : teacherName.trim();
    }

    /**
     * Get 操作者
     * @return operator 操作者
     */
    public String getOperator() {
        return operator;
    }

    /**
     * Set 操作者
     * @param operator 操作者
     */
    public void setOperator(String operator) {
        this.operator = operator == null ? null : operator.trim();
    }

    /**
     * Get 操作时间
     * @return operator_time 操作时间
     */
    public Date getOperatorTime() {
        return operatorTime;
    }

    /**
     * Set 操作时间
     * @param operatorTime 操作时间
     */
    public void setOperatorTime(Date operatorTime) {
        this.operatorTime = operatorTime;
    }
}